package br.com.ac.fatureweb.utilitary;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public final class Util {

	/**
	 * 
	 * @param data
	 * @return
	 */
	public static Date getDate(String data) {
		try {
			SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy",
					new Locale("pt", "BR"));

			Date dataRetorno = dateFormat.parse(data);

			return dataRetorno;
		} catch (Exception ex) {
			return null;
		}
	}

	public static Date getDateComBarra(String data) {
		try {
			SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy",
					new Locale("pt", "BR"));

			Date dataRetorno = dateFormat.parse(data);

			return dataRetorno;
		} catch (Exception ex) {
			return null;
		}
	}

	public static Date getDateComBarraAnoDoisDigitos(String data) {
		try {
			SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yy",
					new Locale("pt", "BR"));

			Date dataRetorno = dateFormat.parse(data);

			return dataRetorno;
		} catch (Exception ex) {
			return null;
		}
	}

	/**
	 * 
	 * @param data
	 * @return
	 */
	public static Long getDate(Date data) {
		Calendar calendar = Calendar.getInstance();

		calendar.setTime(data);

		long timeInMillis = calendar.getTimeInMillis();

		return timeInMillis;
	}

	/**
	 * 
	 * @param hora
	 * @return
	 */
	public static Date getTime(String hora) {
		try {
			SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm",
					new Locale("pt", "BR"));

			Date dataRetorno = dateFormat.parse(hora);

			return dataRetorno;
		} catch (Exception ex) {
			return null;
		}
	}

	/**
	 * 
	 * @param valor
	 * @return
	 */
	public static boolean getBoolean(String valor) {
		if (valor != null && !valor.isEmpty()) {
			Character charAt = valor.charAt(0);

			if (charAt.equals('S')) {
				return true;
			}

			return false;
		}

		return false;
	}

	public static boolean getBooleanZeroOrUm(String valor) {
		if (valor != null && !valor.isEmpty()) {
			Character charAt = valor.charAt(0);

			if (charAt.equals("1")) {
				return true;
			}

			return false;
		}

		return false;
	}

	public static Double getDouble(String valor) {

		if (valor != null && !valor.isEmpty()) {

			valor = valor.replaceAll("[.]", "");

			valor = valor.replaceAll("[,]", ".");

			Double retorno = Double.parseDouble(valor);

			return retorno;
		}

		return null;
	}

	public static Double getDoublePercentual(String valor) {

		if (valor != null && !valor.isEmpty()) {

			valor = valor.replaceAll("[%]", "");

			System.out.println(valor);

			Double retorno = Double.parseDouble(valor);

			return retorno;
		}

		return null;
	}

	public static Integer getIntComPonto(String valor) {

		if (valor != null && !valor.isEmpty()) {

			valor = valor.replaceAll("[.]", "");

			Integer retorno = Integer.parseInt(valor);

			return retorno;
		}

		return null;
	}

	public static Integer getInt(String valor) {

		if (valor != null && !valor.isEmpty()) {

			Integer retorno = Integer.parseInt(valor);

			return retorno;
		}

		return null;
	}

	public static Long getLong(String valor) {

		if (valor != null && !valor.isEmpty()) {

			Long retorno = Long.parseLong(valor);

			return retorno;
		}

		return null;
	}

	public static boolean getBooleanZeroOrUm(Integer valorSemhidro) {

		if (valorSemhidro != null && valorSemhidro.equals(1)) {

			return true;
		}

		return false;
	}

}
